# ======================================================================
#
# Copyright (C) ADN
# ADN::LIBRARY::ADAPTERS::CISCO::IOS::Parse Parse.pm
# Description:
#  - Parse CISCO IOS
#
# ======================================================================

package ADN::LIBRARY::ADAPTERS::CISCO::IOS::Parse;

use strict;

# #######################
# Création de l'objet self 
# #######################
sub new
{
	# Construction de l'objet $self
	my $self = shift;
	my $class = ref($self) || $self;
	return $self if ref $self;
	$self = bless {} => $class;
 	return $self;
}

# #######################
# PARSE BACKUP
# #######################
sub backup
{
    my $self = shift;
    my ($str) = @_;

    $str =~ s/^[^!]*[\!]/!/smx;
    $str =~ s/end[\n|\r|\s]+.*$/end/mx;
    $str =~ s/([\n|\r]+)[^\w\!]*([\w\!])/$1$2/gsmx;
    return ($str);
}

# #######################
# PARSE LOG
# #######################
sub log
{
    my $self = shift;
    my ($str) = @_;

    $str =~ s/^[^\r|^\n]*[\r|\n]|[\r|\n][^\r|^\n]*$//gsx;
    return ($str);
}

# #######################
# PARSE COMMAND
# #######################
sub command
{
    my $self = shift;
    my ($str) = @_;
    my @str;

    $str =~ s/^(.*)$/$1\n/gsmx;
		$str =~ s/\n/.\n/gsmx;
    @str = split /\n/smx, $str;
    foreach $str (@str) {
			$str =~ s/\.$//gsmx;
		}
    return (@str);
}

# #######################
# DESTROY OBJECT
# #######################
sub DESTROY {
	my $self = shift;
	return;
}
1;
__END__
